package com.passer.web.travel.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.passer.web.travel.domain.TJing;
import com.passer.web.travel.domain.TMeishi;
import com.passer.web.travel.domain.TYouji;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.passer.web.travel.mapper.TImagesMapper;
import com.passer.web.travel.domain.TImages;
import com.passer.web.travel.service.ITImagesService;
import com.passer.common.core.text.Convert;

/**
 * 图片信息Service业务层处理
 *
 * @author passer
 * @date 2021-11-23
 */
@Service
public class TImagesServiceImpl implements ITImagesService
{
    @Autowired
    private TImagesMapper tImagesMapper;

    /**
     * 查询图片信息
     *
     * @param sid 图片信息ID
     * @return 图片信息
     */
    @Override
    public TImages selectTImagesById(Long sid)
    {
        return tImagesMapper.selectTImagesById(sid);
    }

    /**
     * 查询图片信息列表
     *
     * @param tImages 图片信息
     * @return 图片信息
     */
    @Override
    public List<TImages> selectTImagesList(TImages tImages)
    {
        // TODO: 2022/3/15 只显示首页景点可以操作
        tImages.setType("jingdian");
        List<TImages> tImages1 = tImagesMapper.selectTImagesList(tImages);
        return tImages1.subList(0,7);
    }

    /**
     * 新增图片信息
     *
     * @param tImages 图片信息
     * @return 结果
     */
    @Override
    public int insertTImages(TImages tImages)
    {
        return tImagesMapper.insertTImages(tImages);
    }

    /**
     * 修改图片信息
     *
     * @param tImages 图片信息
     * @return 结果
     */
    @Override
    public int updateTImages(TImages tImages)
    {
        return tImagesMapper.updateTImages(tImages);
    }

    /**
     * 删除图片信息对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteTImagesByIds(String ids)
    {
        return tImagesMapper.deleteTImagesByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除图片信息信息
     *
     * @param sid 图片信息ID
     * @return 结果
     */
    @Override
    public int deleteTImagesById(Long sid)
    {
        return tImagesMapper.deleteTImagesById(sid);
    }

    /**
     * 保存游记的封面图片
     * @param tYouji 游记信息
     * @return
     */
    @Override
    public int saveCover(TYouji tYouji) {
        //查询该游记之前的图片信息
        TImages yImages = new TImages();
        yImages.setYid(tYouji.getYid());
        List<TImages> list = tImagesMapper.selectTImagesList(yImages);
        //删除所有图片
        for (TImages tImages : list) {
            tImagesMapper.deleteTImagesById(tImages.getSid());
        }

        Long yid = tYouji.getYid();
        TImages tImages = new TImages();
        tImages.setYid(yid);
        tImages.setSrc(tYouji.getCoverURL());
        tImages.setHref("/detail/youji/"+yid);
        tImages.setTitle(tYouji.getTitle());
        tImages.setSort(yid);
        tImages.setType("youji");
        return tImagesMapper.insertTImages(tImages);
    }

    @Override
    public int saveCover(TMeishi tMeishi) {
        //查询该游记之前的图片信息
        TImages mImages = new TImages();
        mImages.setMid(tMeishi.getMid());
        List<TImages> list = tImagesMapper.selectTImagesList(mImages);
        //删除所有图片
        for (TImages tImages : list) {
            tImagesMapper.deleteTImagesById(tImages.getSid());
        }

        Long mid = tMeishi.getMid();
        TImages tImages = new TImages();
        tImages.setMid(mid);
        tImages.setSrc(tMeishi.getCoverURL());
        tImages.setHref("/detail/meishi/"+mid);
        tImages.setTitle(tMeishi.getMname());
        tImages.setSort(mid);
        tImages.setType("meishi");
        return tImagesMapper.insertTImages(tImages);
    }

    @Override
    public int saveCover(TJing tJing) {
        //查询该游记之前的图片信息
        TImages JImages = new TImages();
        JImages.setJid(tJing.getJid());
        List<TImages> list = tImagesMapper.selectTImagesList(JImages);
        //删除所有图片
        for (TImages tImages : list) {
            tImagesMapper.deleteTImagesById(tImages.getSid());
        }

        Long jid = tJing.getJid();
        TImages tImages = new TImages();
        tImages.setJid(jid);
        tImages.setSrc(tJing.getCoverURL());
        tImages.setHref("/detail/jing/"+jid);
        tImages.setTitle(tJing.getJname());
        tImages.setSort(jid);
        tImages.setType("jingdian");
        return tImagesMapper.insertTImages(tImages);
    }

    @Override
    public TImages selectCoverByBusiness(TYouji tYouji) {
        Map<String, Long> ids = new HashMap<>();
        ids.put("yid",tYouji.getYid());
        return tImagesMapper.selectCoverByBusinessId(ids);
    }

    @Override
    public TImages selectCoverByBusiness(TMeishi tMeishi) {
        Map<String, Long> ids = new HashMap<>();
        ids.put("mid",tMeishi.getMid());
        return tImagesMapper.selectCoverByBusinessId(ids);

    }

    @Override
    public TImages selectCoverByBusiness(TJing tJing) {
        Map<String, Long> ids = new HashMap<>();
        ids.put("jid",tJing.getJid());
        return tImagesMapper.selectCoverByBusinessId(ids);
    }
}
